package oracle.version1;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*
* 版本1 --封装【拓展】
* Mysql工具类
* 1.数据库：地址，用户名，密码 私用化--静态化【本类直接调用】
* 2.静态方法【本类直接调用】
* 3通用封装概念-0-链接成功数据【通过一个类链接Mysql和oracle】
* */
public class Mysql {
    //1.数据库地址具备：地址，用户名，密码
    private static String url;
    private static String name;
    private static String password;
    private static String sql;
    private static String sqlDriver="com.mysql.jdbc.Driver";
    private static String update;
    //2.静态方法 getParam(String 路径)
    //properties类 提供方法 load() 读取配日志文件信息【键值对-数据库基本信息】
    //2.1配置文件 ：键值对出现，保存数据库对应的基本信息 xxx.properties
    //2.2 Properties类 -- 读取xxx.properties配置文件
    public static void getParam(String fileName) throws IOException {
        //2.3 外置文件读取--借助IO--搬运数据--InputStream
        Properties p=new Properties();
        InputStream fis=
                //Mysql.class 表示当前Mysql类的Class对象
                //getClassLoader() 获取当前类的加载器[加载器负责读取配置文件信息]
                //
                Mysql.class.getClassLoader().getResourceAsStream(fileName);

        p.load(fis);
        //读取db_mysql.properties中键
        url=p.getProperty("url");
        name=p.getProperty("username");
        password=p.getProperty("password");
        sql=p.getProperty("sql");
        update=p.getProperty("update");
        System.out.println(url);
    }

    public static void MysqlJDBC(String sqlDriver) throws SQLException, ClassNotFoundException {
        //1.加载驱动
        Class.forName(sqlDriver);
        //建立数据库链接
        Connection con=
                DriverManager.getConnection(url,name,password);
        Statement st=con.createStatement();
        st.executeUpdate(sql);
        st.executeUpdate(update);
        con.close();
        st.close();
    }
    public static void main(String[] args) throws IOException {
        Mysql.getParam("db_mysql.properties");
        Oracle.getParamOracle("db_oracle.properties");
    }
}


class Oracle{
    //封装静态属性
    private static String urlOracle;
    private static String userNameOracle;
    private static String passwordOracle;

    //配置properties文件
    public  static  void getParamOracle(String fileName) throws IOException {
        Properties po=new Properties();
        InputStream iso=
                Oracle.class.getClassLoader().getResourceAsStream(fileName);
        if (iso==null){
            System.out.println("null");
        }
        po.load(iso);

        urlOracle=po.getProperty("urlOracle");
        userNameOracle=po.getProperty("username");
        passwordOracle=po.getProperty("password");
    }

}